import {LitElement, html,css} from "lit";
class A {
    static get properties() {
        return {
            /**
             * Copy for the read the docs hint.
             */
            docsHint: { type: String },

            /**
             * The number of times the button has been clicked.
             */
            count: { type: Number },
        }
    }
    func1(){
        console.log(this);
        this.func2()
    }
    func2(){
        console.log("func2")
    }
}
class B extends A {

}
const b = new B();

class C extends LitElement{
    constructor() {
        super()
    }
    render() {
        return html`<div>haha</div>`
    }
}
window.customElements.define('my-c', C)
console.log(new C());
console.log(css.toString());
console.log(html.toString());



let Mixin1 = (superclass) => class extends superclass {
    foo() {
        console.log('foo from Mixin1');
        if (super.foo) super.foo();
    }
};

let Mixin2 = (superclass) => class extends superclass {
    foo() {
        console.log('foo from Mixin2');
        if (super.foo) super.foo();
    }
};

class S {
    foo() {
        console.log('foo from S');
    }
}

class C extends Mixin1(Mixin2(S)) {
    foo() {
        console.log('foo from C');
        super.foo();
    }
}


class A1{
    name;
    static get p(){
        return "a";
    };
    get () {

    }
    constructor() {
        A1.init1()
    }
    test() {
        console.log(A.p);
    }
    init() {
        console.log(this.constructor.p);;
    }
    static init1() {
        console.log(this.p);
    }

}

class A2 extends A1{
    name = "jwj";
    static get p() {

        return super.p + "b";
    }



    test2() {
        this.constructor.init1();
    }
}
A2.init1();

function aa({a=1,b=2,c=3}) {
    console.log(a,b,c);
}
aa({})
